4
תגובות
היי חברה יש לי בעיה עם הטופס גם שאין שם הוא עדיין מבצע שליחה
אשמח לדעת איפה אני נופל בבדיקה

זה הקוד

$successfully_msg = "ההודע נשלחה";
$email_subject = "אתר vsite";
define('EMAILTO', '[email protected]');



if (isset($_POST['name'], $_POST['phone'], $_POST['email'])) {
 
 
  $name = trim(strip_tags($_POST['name']));
  $phone = trim(strip_tags($_POST['phone']));
  $email = trim(strip_tags($_POST['email']));
 
  if(strlen($name) < 2) {
    echo "נא להזין שם מלא";
  }

  if (!preg_match('/^0[0-9]{6,16}/', $phone)) {
    echo "נא להזין טלפון";
  }

  $email_exp = '/^[-!#$%&\'*+\\.\/0-9=?A-Z^_`{|}~]+@([-0-9A-Z]+\.)+([0-9A-Z]){2,4}$/i';
  if (!preg_match($email_exp, $email)) {
    echo 'נא להזין דוא"ל';
  }
 
  else{
    function clean_string($string) {

      $bad = array("content-type", "bcc:", "to:", "cc:", "href");

      return str_replace($bad, "", $string);
    }


    $email_message .= "First Name: " . clean_string($name) . "\n";
    $email_message .= "Email: " . clean_string($email) . "\n";
    $email_message .= "Telephone: " . clean_string($phone) . "\n";
    $headers = 'From: ' . $name . "\r\n" . 'Reply-To: ' . $email . "\r\n" . 'X-Mailer: PHP/' . phpversion();
     
      @mail(EMAILTO, $email_subject, $email_message, $headers);          
      echo $successfully_msg;
   
   
  }
 
 

 
  }

4 תשובות

avatar ענה intval ב 04 למרץ 2014 #

שנית, הוא שולח את האימייל בגלל שלא אמרת "לא לשלוח".
הקוד מבקש להדפיס הודעה שאין שם, אבל אחרי שההודעה הודפסה - הקוד ממשיך להתבצע כפי שהוא.
זה קורה בגלל שה else שייך רק ל IF האחרון.
במקום זה תוכל להשתמש בקפודות ifelse עבור שאר התנאים.

avatar ענה 1alexmelo ב 04 למרץ 2014 #

היי אלכס תודה .
מה זאת אומרת הוא שולח את האימייל בגלל שלא אמרת "לא לשלוח".?
הקוד מבקש להדפיס הודעה שאין שם?

שאלה עם הבדיקות לא עברה אני צריך לעצור את הסקיפט בdie()?

avatar ענה intval ב 05 למרץ 2014 #

אם הבדיקה לא עברה, אתה פשוט צריך לא להגיע לחלק של השליחה.
ככה הקוד שלך נראה עכשיו:

if(blabla)
{
  ..
}

send_email()

ואין בו שום קשר בין התנאי לבין השליחה. השליחה מתבצעת בכל מקרה, לא משנה אם התנאי אמת או שקר.
ככה הקוד שלך צריך להיראות במקום זה:

if(blabla)
{
  ..
}
else if( another blabla)
{
  ..
}
else
{
  send_email()
}


במקרה הזה האימייל יישלח רק אם שני התאנים הקודמים לא התבצעו

avatar ענה zacharya ב 05 למרץ 2014 #

אתה גם יכול לעשות מה שעשית רק בבלוקים של TRY&CATCH